﻿Public Class xtf_ABMmarca

    Dim ulg_row As DataRow
    Dim obj_marca As cls_marca_ = Nothing


    Public Sub New()
        InitializeComponent()
        Cargarmodelo_()
        liv_marcamodelo.Tag = New DevExpress.XtraEditors.Controls.ListBoxItemCollection
        AgregarValidaciones()
    End Sub

    Public Overrides Sub CargarObjetos()
        Cargarmodelo_()
    End Sub

    Private Sub Cargarmodelo_()
        liv_Modelo.Items.Clear()
        Dim modelo_ As New cls_modelo_
        If modelo_.CargarTodos Then
            For Each modelo As cls_modelo_ In modelo_.Items
                Dim Elemento As New CustomListItem
                Elemento.objeto = modelo
                Elemento.text = modelo.ToString
                liv_Modelo.Items.Add(Elemento)
            Next
            liv_Modelo.Enabled = True
        Else
            liv_Modelo.Enabled = False
        End If
    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_marca = New cls_marca_
            btn_Registro.Enabled = False
            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef marca As cls_marca_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_marca) Then
            obj_marca = New cls_marca_
        End If
        obj_marca = marca
        frm_listado = listado
        ulg_row = row

        Me.Text = "Marca - " & obj_marca.ToString
        txt_ID.Text = obj_marca.idmarca
        txt_Nombre.Text = obj_marca.nombre
        txt_Nombrecorto.Text = obj_marca.nombrecorto
        txt_Observaciones.Text = obj_marca.observaciones
        btn_Registro.Enabled = True

        liv_marcamodelo.Items.Clear()
        liv_marcamodelo.Tag.Clear()
        If Not IsNothing(obj_marca.marcamodelo_) Then
            If Not IsNothing(obj_marca.marcamodelo_.Items) Then
                For Each marcamodelo As cls_marcamodelo_ In obj_marca.marcamodelo_.Items
                    Dim Elemento As New CustomListItem
                    Elemento.objeto = marcamodelo
                    Elemento.text = marcamodelo.modelo.ToString
                    liv_marcamodelo.Items.Add(Elemento)
                Next
            End If
        End If

        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_marca.nombre = txt_Nombre.Text
            obj_marca.nombrecorto = txt_Nombrecorto.Text
            obj_marca.observaciones = txt_Observaciones.Text

            'Guardo marcas------------------------------------------------------
            If IsNothing(obj_marca.marcamodelo_) Then
                obj_marca.marcamodelo_ = New cls_marcamodelo_
            End If
            If IsNothing(obj_marca.marcamodelo_.Items) Then
                obj_marca.marcamodelo_.Items = New Collections.Generic.List(Of cls_marcamodelo_)
            End If
            obj_marca.marcamodelo_.Items = New Collections.Generic.List(Of cls_marcamodelo_)
            For Each Elemento As CustomListItem In liv_marcamodelo.Items
                obj_marca.marcamodelo_.Items.Add(Elemento.objeto)
            Next
            For Each Elemento As CustomListItem In liv_marcamodelo.Tag
                If CType(Elemento.objeto, cls_marcamodelo_).idmarcamodelo <> 0 Then
                    CType(Elemento.objeto, cls_marcamodelo_).Eliminar(CType(Elemento.objeto, cls_marcamodelo_).idmarcamodelo)
                End If
            Next
            '---------------------------------------------------------------------


            If txt_ID.Text = "" Then
                obj_marca.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOmarca_).AgregarItem(obj_marca)
                End If
                Modificar(obj_marca, frm_listado, ulg_row)
            Else
                obj_marca.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOmarca_).ModificarItem(obj_marca, ulg_row)
                End If
                Modificar(obj_marca, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False

        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_marca.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_marca.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub



    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub

#Region "marca_modelo"
    Private Sub btn_AgregarA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Agregar.Click
        For i As Integer = 0 To liv_modelo.SelectedItems.Count - 1
            Dim Elemento As New CustomListItem '= liv_modelo.SelectedItems(0)
            Elemento.objeto = New cls_marcamodelo_
            CType(Elemento.objeto, cls_marcamodelo_).idmodelo = CType(CType(liv_Modelo.SelectedItems(i), CustomListItem).objeto, cls_modelo_).idmodelo
            Elemento.text = CType(Elemento.objeto, cls_marcamodelo_).modelo.ToString
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_marcamodelo.Items
                Dim marcamodelo As cls_marcamodelo_ = customitem.objeto
                If marcamodelo.idmodelo = CType(Elemento.objeto, cls_marcamodelo_).idmodelo Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_marcamodelo.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub btn_AgregarTodosA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_AgregarTodos.Click
        For i As Integer = 0 To liv_modelo.Items.Count - 1
            Dim Elemento As New CustomListItem '= liv_modelo.SelectedItems(0)
            Elemento.objeto = New cls_marcamodelo_
            CType(Elemento.objeto, cls_marcamodelo_).idmodelo = CType(CType(liv_Modelo.Items(i), CustomListItem).objeto, cls_modelo_).idmodelo
            Elemento.text = CType(Elemento.objeto, cls_marcamodelo_).modelo.ToString
            Dim flag As Boolean = False
            For Each customitem As CustomListItem In liv_marcamodelo.Items
                Dim marcamodelo As cls_marcamodelo_ = customitem.objeto
                If marcamodelo.idmodelo = CType(Elemento.objeto, cls_marcamodelo_).idmodelo Then
                    flag = True
                End If
            Next
            If flag = False Then
                liv_marcamodelo.Items.Add(Elemento)
            End If
        Next
    End Sub

    Private Sub btn_QuitarA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Quitar.Click
        If liv_marcamodelo.SelectedItems.Count > 0 Then
            For i As Integer = liv_marcamodelo.SelectedItems.Count - 1 To 0 Step -1
                Dim Elemento As CustomListItem
                Elemento = liv_marcamodelo.SelectedItems(i)
                liv_marcamodelo.Items.Remove(Elemento)
                liv_marcamodelo.Tag.add(Elemento)
            Next
        End If
    End Sub

    Private Sub btn_QuitarTodosA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_QuitarTodos.Click
        If liv_marcamodelo.Items.Count > 0 Then
            For i As Integer = liv_marcamodelo.Items.Count - 1 To 0 Step -1
                Dim Elemento As CustomListItem
                Elemento = liv_marcamodelo.Items(i)
                liv_marcamodelo.Items.Remove(Elemento)
                liv_marcamodelo.Tag.add(Elemento)
            Next
        End If
    End Sub
#End Region
End Class